Tag (Effect)
この2つが必要
一意の識別子
code:ts
class Random extends Context.Tag("MyRandomService")<
Random,
{ readonly next: Effect.Effect<number> }
() { }
new Randomのように書かなくても、Random自体がtagとして機能する
この2つが必要
識別子: "MyRandomService"
関数でも定義できる
こっちの方が、ノイズが少なくてわかりやすいと思うmrsekut.icon
code:ts
type Log = (message: string) => Effect.Effect<void>;
Tagを作る
code:ts
const Logger = Context.GenericTag<{
readonly log: Log
}>("Logger");
(少し構造は変わるが)この例だと↓こう書く方が好み
code:ts
const Logger = Context.GenericTag<Log>("Logger");